home *** CD-ROM | disk | FTP | other *** search
/ Euroscene 1 / Euroscene 1.iso / diskmags / finnish / saku2_9_93.lha / txt / Pilvi < prev    next >
Text File  |  1992-09-02  |  3KB  |  80 lines

  1. 6
  2. 1*
  3. Pilven tekoa AMOSilla
  4.  
  5. Ei, nyt ei todellakaan käsitellä sen huumaavan valkoisen jauheen tekoa,
  6. vaan yritetään matkia luonnon tapaa tuottaa erilaisia ilmiöitä.
  7. Tapaa jota käytetään myös esimerkki ohjelmassa kutsutaan
  8. nimellä KESKIPISTEEN POIKKEUTUS menetelmä. Tällä systeemillä
  9. voidaan saada aikaan esim. pilviä, vuoristoja, tai vaikka maapallon
  10. kartta.
  11. Jos katsotaan vaikka vuoristoa, havaitaan siinä tietysti korkeita ja
  12. matalia kohtia. Muutokset eivät ole yleensä jyrkkiä, vaan poukkoilevat
  13. satunnaisuuden sanelemana pisteestä A pisteeseen B. Karkea luonnos
  14. tästä on että vedetään viiva kahden pisteen välille, ja tarkastellaan
  15. pisteiden/viivan keskikohtaa. Huomataan että keskikohdasta C saatu 
  16. arvo (korkeus) on A ja B pisteiden summa jaettuna kahdella. C=(A+B)/2
  17. No, seuraavaksi lisätään tai vähennetään tästä tuloksesta joku
  18. sopiva luku D, jolla saadaan hiukan muutosta tulokseen C.
  19. Tämä luku D kannattaa arpoa satunnaisluku generaattorilla (D=RND(10)-5)
  20. Tuo viimeinen -5 mahdollistaa sen että D:n arvoksi saadaan luku
  21. väliltä -5....5.
  22. Äskeisten temppujen avulla saatiin siis uusi piste viivalle satunnaisella
  23. keskipisteen poikkeutuksella. ( Koko kaavahan oli C=(A+B)/2+D )
  24. Nyt kun meillä on jo kolme pistettä voidaan jatkaa lisä epätasasuuksien
  25. eli pisteiden tekemistä. Jatko hoituu täsmälleen samalla lailla
  26. kuin ensimmäinenkin lisäpiste C, vähennetään vain satunnais luvun
  27. osuutta jotta "viivasta" ei tulisi liian epätasaista.
  28. Äsken kerrotulla hommalla saa aikaan sopivasti heittelehtivän
  29. viivan pisteeatä A pisteeseen B. Samoilla säänöillä saadaan myös 
  30. otsikossa mainittu pilvi aikaan. Rosoisen viivan ollessa 2 ulotteinen,
  31. pilvi "fractaali" on 3 ulotteinen. Pilvi fractaali on alue jolla
  32. on leveys ,korkeus ja syvyys. Syvyys esitetään eri värisävyin
  33. valkeasta siniseen. Pilviesimerkissä syvyys eli väri on se mitä
  34. muutetaan.
  35. Kuva voisi selventää käytettyä laskentatapaa.
  36.  
  37.       A1---n---A2
  38.       | \     / |     
  39.       |  \   /  |    
  40.       |   \ /   |  
  41.       w    k    e   
  42.       |   / \   |  
  43.       |  /   \  | 
  44.       | /     \ |   
  45.       A3---s---A4             
  46.                   
  47.                  
  48. A1-4 ovat vanhoja pisteitä. n,e,s,w,k pisteet lasketaan kuvan
  49. esittämän yhdistävien viivojen mukaan.
  50.   n=(A1+A2)/2+x
  51.   w=(A1+A3)/2+x       x=satunnaisluku (tietysti eri joka laskussa)
  52.   k=(A1+A2+A3+A4)/4+r
  53.   jne.......
  54.  
  55. Näin tekemällä saadaan ruudusta 4 uutta ruutua joille toimenpidettä 
  56. jatketaan. Koska jokainen piste on riippuvainen vierus toveristaan
  57. saadaan koko alue "yhtenäiseksi".
  58.  
  59. Ohjelmointiteknisiä juttuja ei kannata lähteä selittämään tässä vaan
  60. jokainen tutkikoon tekstimuodossa olevaa Pilvi.asc listausta.
  61. Esimerkki on tehty AMOSilla ja sen lataaminen onnistuu MERGE ASCII
  62. valikon kautta.
  63. Muilla kielillä ohjelmoijat voivat helposti soveltaa esimerkki-
  64. listauksesta.
  65. Katsotaan kuka saa aiheesta näppärimmän ohjelman aikaan. Ohjelmointi-
  66. kieli vapaa.
  67. Ohjelmatuotteet voi lähettää SAKUn "toimitukseen", disketiltä
  68. löytyy varmasti osoite.  
  69.  
  70. [Ed. huom.: ko. ohjelma löytyy hakemistosta txt/ nimellä pilvi.amos,
  71.  mutta se on myös lehden seuraava artikkeli. Saat ohjelman talletettua
  72.  omalle levyllesi klikkaamalla diski-ikonia (gadgettia) valittuasi
  73.  ensin ohjelmalistauksen Sakuun. (Hakemistosta tai nuolinäppäimistä).
  74.  HUOM! Ennen ohjelman lataamista Amosiin se tarvitsee
  75.  pientä editointia (poista Sakun kommentit, sivunumerot ja
  76.  yhdistä kaksi riviä ohjelman alkupuolella (alempi rivi on kommentoitu)]
  77.  
  78. Jari Jokivuori
  79.  
  80.